 main() {
//1.把匿名函数作为参数传递    匿名函数
  //没有名称的函数称为匿名函数
testCallBack((data){
  print('匿名函数调用了$data');
});

  //把函数作为参数传递

  //2.定义一个函数，把函数传递
  void fn(String data){
    print('fn 函数调用了$data');
  }
testCallBack(fn);

//3.定义有一个函数，把函数作为参数传递
Function fn2=(Function callback){
print('fn2');
callback('fn2');
};
fn2(fn);
//4.
void Function(String data) fn3=(String data){
  print('fn3 函数调用了$data');
};
testCallBack1(fn3);
}
//1.回调函数
//回调函数：把一个函数作为参数传递
void testCallBack(Function callback){
  //2.调用回调函数 ，回传参数
callback('回传的数据');
}
//ArkTS写法：(data:string)=>void
//Dart写法：void Function(String data)
void testCallBack1(void Function(String data) callback){
callback('回传的数据');
}

